package com.ito.ito.areaTrabajo.modelo;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "plantilla")
public class Plantilla implements Serializable {
	private static final long serialVersionUID = 1L;
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "idPlantilla", nullable = false)
	private Long idPlantilla;

	@Column(name = "nombrePlantilla", nullable = false)
	private String nombrePlantilla;

	@ManyToOne(optional = true)
	@JoinTable(name = "GPlantillas_plantilla", joinColumns = { @JoinColumn(name = "idPlantilla") }, inverseJoinColumns = { @JoinColumn(name = "idGplantillas") })
	private Gplantillas gplantillas;
	
	@OneToMany(cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH,CascadeType.REMOVE})
	@JoinTable(name="plantilla_estructura",joinColumns={@JoinColumn(name="idPlantilla",unique=true)},inverseJoinColumns={@JoinColumn(name="idEstructura")})
	private List<Estructura> estructuras=new ArrayList<Estructura>();
	
	
	

	public Plantilla() {
	}
	public Plantilla(String nombrePlantilla) {
		this.nombrePlantilla = nombrePlantilla;
	}
	

	public Long getIdPlantilla() {
		return idPlantilla;
	}

	public void setIdPlantilla(Long idPlantilla) {
		this.idPlantilla = idPlantilla;
	}

	public String getNombrePlantilla() {
		return nombrePlantilla;
	}

	public void setNombrePlantilla(String nombrePlantilla) {
		this.nombrePlantilla = nombrePlantilla;
	}

	public Gplantillas getGplantillas() {
		return gplantillas;
	}

	public void setGplantillas(Gplantillas gplantillas) {
		this.gplantillas = gplantillas;
	}

	public List<Estructura> getEstructuras() {
		return estructuras;
	}

	public void setEstructuras(List<Estructura> estructuras) {
		this.estructuras = estructuras;
	}

}
